home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / AmigaTalk / user / Quaternion.p < prev    next >
Text File  |  2004-01-31  |  8KB  |  184 lines

  1. pTempVar <- <primitive 110 26 >
  2. <primitive 112 pTempVar 1  " ~= " \
  3.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  4.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  5.         16r22 16r80 16r01 16rCA 16r11 16r22 16r80 16r02 16rCA 16r81 \
  6.         16r03 16r12 16r22 16r80 16r04 16rCA 16r81 16r03 16r13 16r22 \
  7.         16r80 16r05 16rCA 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 \
  8.         16r03 16rF2 16r5C 16rF3 16rF2 16rF5] \
  9.     #( #isKindOf: #spart #ipart #! #jpart #kpart  )) >
  10.  
  11. <primitive 112 pTempVar 2  " >= " \
  12.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  13.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  14.         16r22 16r80 16r01 16rCB 16r11 16r22 16r80 16r02 16rCB 16r81 \
  15.         16r03 16r12 16r22 16r80 16r04 16rCB 16r81 16r03 16r13 16r22 \
  16.         16r80 16r05 16rCB 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 \
  17.         16r03 16rF2 16r5C 16rF3 16rF2 16rF5] \
  18.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  19.  
  20. <primitive 112 pTempVar 3  " <= " \
  21.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  22.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  23.         16r22 16r80 16r01 16rC8 16r11 16r22 16r80 16r02 16rC8 16r81 \
  24.         16r03 16r12 16r22 16r80 16r04 16rC8 16r81 16r03 16r13 16r22 \
  25.         16r80 16r05 16rC8 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 \
  26.         16r03 16rF2 16r5C 16rF3 16rF2 16rF5] \
  27.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  28.  
  29. <primitive 112 pTempVar 4  " > " \
  30.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  31.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  32.         16r22 16r80 16r01 16rCC 16r11 16r22 16r80 16r02 16rCC 16r81 \
  33.         16r03 16r12 16r22 16r80 16r04 16rCC 16r81 16r03 16r13 16r22 \
  34.         16r80 16r05 16rCC 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 \
  35.         16r03 16rF2 16r5C 16rF3 16rF2 16rF5] \
  36.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  37.  
  38. <primitive 112 pTempVar 5  " < " \
  39.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  40.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r20 \
  41.         16r80 16r01 16rF2 16r22 16r80 16r01 16rF2 16r10 16r22 16r80 \
  42.         16r02 16rC7 16r11 16r22 16r80 16r03 16rC7 16r81 16r04 16r12 \
  43.         16r22 16r80 16r05 16rC7 16r81 16r04 16r13 16r22 16r80 16r06 \
  44.         16rC7 16r81 16r04 16rF7 16r04 16r5B 16rF3 16rF8 16r03 16rF2 \
  45.         16r5C 16rF3 16rF2 16rF5] \
  46.     #( #isKindOf: #computeMag #spart #ipart #& #jpart #kpart  )) >
  47.  
  48. <primitive 112 pTempVar 6  " == " \
  49.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  50.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  51.         16r22 16r80 16r01 16rC9 16r11 16r22 16r80 16r02 16rC9 16r81 \
  52.         16r03 16r12 16r22 16r80 16r04 16rC9 16r81 16r03 16r13 16r22 \
  53.         16r80 16r05 16rC9 16r81 16r03 16rF7 16r04 16r5B 16rF3 16rF8 \
  54.         16r03 16rF2 16r5C 16rF3 16rF2 16rF5] \
  55.     #( #isKindOf: #spart #ipart #& #jpart #kpart  )) >
  56.  
  57. <primitive 112 pTempVar 7  " printString " \
  58.   #( #[ 16r30 16r10 16rFA 16r01 16r4E 16r0B 16r12 16r31 16r0B 16r12 16r11 \
  59.         16rFA 16r01 16r4E 16r0B 16r12 16r31 16r0B 16r12 16r12 16rFA \
  60.         16r01 16r4E 16r0B 16r12 16r31 16r0B 16r12 16r13 16rFA 16r01 \
  61.         16r4E 16r0B 16r12 16r32 16r0B 16r12 16rA8 16rF2 16r20 16rF3 \
  62.         16rF5] \
  63.     #( '{' ', ' '}'  )) >
  64.  
  65. <primitive 112 pTempVar 8  " / " \
  66.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  67.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r22 \
  68.         16r80 16r01 16r32 16rB6 16r22 16r80 16r03 16r34 16rB6 16r81 \
  69.         16r05 16rF7 16r07 16r36 16rFA 16r01 16r7B 16rF2 16r5D 16rF3 \
  70.         16rF2 16r20 16r22 16r80 16r07 16rC2 16rF2 16r20 16rF3 16rF5 \
  71.        ] \
  72.     #( #isKindOf: #spart 0.0 #ipart 0.0 #& \
  73.         'Quaternion error: Division by zero!' #inverse  )) >
  74.  
  75. <primitive 112 pTempVar 9  " * " \
  76.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  77.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r10 \
  78.         16r22 16r80 16r01 16rC2 16r11 16r22 16r80 16r02 16rC2 16rC1 \
  79.         16r12 16r22 16r80 16r03 16rC2 16rC1 16r13 16r22 16r80 16r04 \
  80.         16rC2 16rC1 16r60 16r11 16r22 16r80 16r01 16rC2 16r10 16r22 \
  81.         16r80 16r02 16rC2 16rC0 16r13 16r22 16r80 16r03 16rC2 16rC0 \
  82.         16r12 16r22 16r80 16r04 16rC2 16rC1 16r61 16r12 16r22 16r80 \
  83.         16r01 16rC2 16r13 16r22 16r80 16r02 16rC2 16rC1 16r10 16r22 \
  84.         16r80 16r03 16rC2 16rC0 16r11 16r22 16r80 16r04 16rC2 16rC0 \
  85.         16r62 16r13 16r22 16r80 16r01 16rC2 16r12 16r22 16r80 16r02 \
  86.         16rC2 16rC0 16r11 16r22 16r80 16r03 16rC2 16rC1 16r10 16r22 \
  87.         16r80 16r04 16rC2 16rC0 16r63 16r20 16rF3 16rF5] \
  88.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  89.  
  90. <primitive 112 pTempVar 10  " - " \
  91.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  92.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r20 \
  93.         16r80 16r01 16r22 16r80 16r01 16rC1 16r60 16r20 16r80 16r02 \
  94.         16r22 16r80 16r02 16rC1 16r61 16r20 16r80 16r03 16r22 16r80 \
  95.         16r03 16rC1 16r62 16r20 16r80 16r04 16r22 16r80 16r04 16rC1 \
  96.         16r63 16r20 16rF3 16rF5] \
  97.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  98.  
  99. <primitive 112 pTempVar 11  " + " \
  100.   #( #[ 16r21 16r20 16rA4 16r81 16r00 16rF6 16r08 16r20 16r21 16r0B 16r10 \
  101.         16rF1 16r72 16rF8 16r04 16rF2 16r21 16rF1 16r72 16rF2 16r22 \
  102.         16r80 16r01 16r20 16r80 16r01 16rC0 16r60 16r22 16r80 16r02 \
  103.         16r20 16r80 16r02 16rC0 16r61 16r22 16r80 16r03 16r20 16r80 \
  104.         16r03 16rC0 16r62 16r22 16r80 16r04 16r20 16r80 16r04 16rC0 \
  105.         16r63 16r20 16rF3 16rF5] \
  106.     #( #isKindOf: #spart #ipart #jpart #kpart  )) >
  107.  
  108. <primitive 112 pTempVar 12  " inverse " \
  109.   #( #[ 16r20 16r80 16r00 16r31 16rC9 16rF7 16r07 16r32 16rFA 16r01 16r7B \
  110.         16rF2 16r5D 16rF3 16rF2 16r20 16r80 16r03 16r20 16r80 16r00 \
  111.         16rBF 16rF3 16rF5] \
  112.     #( #norm 0.0 'Quaternion error: Division by zero!' #conjugate  )) >
  113.  
  114. <primitive 112 pTempVar 13  " norm " \
  115.   #( #[ 16r10 16r10 16rC2 16r11 16r11 16rC2 16rC0 16r12 16r12 16rC2 16rC0 \
  116.         16r13 16r13 16rC2 16rC0 16rF3 16rF5] \
  117.     #(  )) >
  118.  
  119. <primitive 112 pTempVar 14  " ~^ " \
  120.   #( #[ 16r20 16rF2 16rF5] \
  121.     #(  )) >
  122.  
  123. <primitive 112 pTempVar 15  " conjugate " \
  124.   #( #[ 16r30 16r11 16rC2 16r61 16r31 16r12 16rC2 16r62 16r32 16r13 16rC2 \
  125.         16r63 16r20 16rF3 16rF5] \
  126.     #( -1.0 -1.0 -1.0  )) >
  127.  
  128. <primitive 112 pTempVar 16  " coerce: " \
  129.   #( #[ 16r40 16rA0 16r72 16r22 16r21 16r81 16r01 16rF2 16r22 16r32 16r81 \
  130.         16r03 16rF2 16r22 16r34 16r81 16r05 16rF2 16r22 16r36 16r81 \
  131.         16r07 16rF2 16r22 16rF3 16rF5] \
  132.     #( #Quaternion #tensor: 0.0 #ipart: 0.0 #jpart: 0.0 #kpart:  )) >
  133.  
  134. <primitive 112 pTempVar 17  " versor:p2:p3: " \
  135.   #( #[ 16r21 16r61 16r22 16r62 16r23 16r63 16rF5] \
  136.     #(  )) >
  137.  
  138. <primitive 112 pTempVar 18  " kpart: " \
  139.   #( #[ 16r21 16r63 16rF5] \
  140.     #(  )) >
  141.  
  142. <primitive 112 pTempVar 19  " jpart: " \
  143.   #( #[ 16r21 16r62 16rF5] \
  144.     #(  )) >
  145.  
  146. <primitive 112 pTempVar 20  " ipart: " \
  147.   #( #[ 16r21 16r61 16rF5] \
  148.     #(  )) >
  149.  
  150. <primitive 112 pTempVar 21  " tensor: " \
  151.   #( #[ 16r21 16r60 16rF5] \
  152.     #(  )) >
  153.  
  154. <primitive 112 pTempVar 22  " kpart " \
  155.   #( #[ 16r13 16rF3 16rF5] \
  156.     #(  )) >
  157.  
  158. <primitive 112 pTempVar 23  " jpart " \
  159.   #( #[ 16r12 16rF3 16rF5] \
  160.     #(  )) >
  161.  
  162. <primitive 112 pTempVar 24  " ipart " \
  163.   #( #[ 16r11 16rF3 16rF5] \
  164.     #(  )) >
  165.  
  166. <primitive 112 pTempVar 25  " tensor " \
  167.   #( #[ 16r10 16rF3 16rF5] \
  168.     #(  )) >
  169.  
  170. <primitive 112 pTempVar 26  " new " \
  171.   #( #[ 16r05 16r2B 16r30 16rB0 16r60 16r05 16r2B 16r31 16rB0 16r61 16r05 \
  172.         16r2B 16r32 16rB0 16r62 16r05 16r2B 16r33 16rB0 16r63 16rF5 \
  173.        ] \
  174.     #( 0.0 0.0 0.0 0.0  )) >
  175.  
  176. <primitive 98 #Quaternion \
  177.   <primitive 97 #Quaternion #Magnitude #User/Quaternion.st \
  178.    #(  #s #i #j #k ) \
  179.    #( #~= #>= #<= #> #< #== #printString #/ #* #- #+ #inverse #norm #~^  \
  180.        #conjugate #coerce: #versor:p2:p3: #kpart: #jpart: #ipart: #tensor: #kpart #jpart  \
  181.        #ipart #tensor #new  ) \
  182.   pTempVar 6 19 > #ordinary >
  183.  
  184.